#ifndef _LOCALCLIENT_H_
#define _LOCALCLIENT_H_

#include <vector>
#include <string>

class RemoteClient;

class LocalClient{

   public:
      LocalClient();
      LocalClient(int t_uid, char* name, int x, int y, int z);
      ~LocalClient();

      void Add_Message(const char* msg);
      void Add_User(RemoteClient User);

      std::string Get_Message(int message_number);

      RemoteClient Get_User(char* name);
      RemoteClient Get_User(int uid);

      void Remove_User(int uid);

      void Clear_Messages(){Messages.clear();}
      void Clear_Users();

      void Update_Position(int x, int y, int z){this->pos_x = x; this->pos_y = y; this->pos_z = z;}
      void Update_Name(char* name){this->my_name = name;}

      char* Get_Name(){return this->my_name;}
      int X(){return this->pos_x;}
      int Y(){return this->pos_y;}
      int Z(){return this->pos_z;}

      void Set_Uid(int uid){this->uid = uid;}
      int Get_Uid(){return this->uid;}

   private:
      int uid;

      char* my_name;

      int pos_x;
      int pos_y;
      int pos_z;

      std::vector<const char*> Messages;
      std::vector<RemoteClient> Users;
};

#endif //_LOCALCLIENT_H_

